package dao

import (
	"accounting-software/models"
	"errors"

	"gorm.io/gorm"
)

// 定义userDao结构体，返回一个gorm类型的数据库连接
type UserDao struct {
	db *gorm.DB
}

// 定义实例化userDao的方法
func NewUserDao(db *gorm.DB) *UserDao {
	return &UserDao{db: db}
}

// 添加用户
func (ud *UserDao) AddUser(user *models.User) error {
	result := ud.db.Create(&user)
	return result.Error
}

// 通过名字查找用户
func (ud *UserDao) FindUserByName(name string) (*models.User, error) {
	var user models.User
	err := ud.db.Where("name = ?", name).First(&user).Error
	if errors.Is(err, gorm.ErrRecordNotFound) {
		return nil, nil // 明确返回 nil, nil 表示用户不存在
	}
	return &user, err // 其他情况返回用户或错误
}
